"""
Diffusion PDE implementation
"""

"""
    DiffusionPDE <: AbstractPDE

Standard diffusion equation: ∂u/∂t = D∇²u

# Parameters
- `diffusivity`: Diffusion coefficient D (default: 1.0)
"""
struct DiffusionPDE <: AbstractPDE
    diffusivity::Float64
    
    DiffusionPDE(; diffusivity=1.0) = new(diffusivity)
end

function evolution_rate(pde::DiffusionPDE, state::ScalarField, t::Float64)
    lap = laplacian(state)
    return pde.diffusivity * lap
end